অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং এর মূলনীতি (OOP Concepts)

Computer Programming - এপেক্স (Apex) Apex ক্লাস এবং অবজেক্টস (Apex Classes and Objects) |
370
370

অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং (Object-Oriented Programming, OOP) একটি প্রোগ্রামিং প্যারাডাইম, যেখানে ডেটা ও কার্যকলাপকে অবজেক্ট হিসেবে সংরক্ষণ ও পরিচালনা করা হয়। OOP এর মূলনীতিগুলি কোডকে আরও সুসংগঠিত, পুনরায় ব্যবহারযোগ্য, এবং রক্ষণাবেক্ষণযোগ্য করে তোলে। OOP এর প্রধান চারটি মূলনীতি হলো এনক্যাপসুলেশন (Encapsulation), ইনহেরিটেন্স (Inheritance), পলিমরফিজম (Polymorphism), এবং অ্যাবস্ট্রাকশন (Abstraction)


১. এনক্যাপসুলেশন (Encapsulation)

এনক্যাপসুলেশন হলো ডেটা এবং মেথডকে একটি ক্লাসের মধ্যে বেঁধে রাখার প্রক্রিয়া। এর মাধ্যমে ডেটাকে বাইরের অ্যাক্সেস থেকে সুরক্ষিত রাখা যায় এবং শুধুমাত্র নির্দিষ্ট মেথডের মাধ্যমে ডেটা অ্যাক্সেস বা পরিবর্তন করা যায়।

উদাহরণ:

public class Student {
    private String name; // Private ভ্যারিয়েবল

    // Public মেথড যা প্রাইভেট ডেটা অ্যাক্সেস করতে দেয়
    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }
}
  • এখানে name ভ্যারিয়েবল private হিসাবে ডিক্লেয়ার করা হয়েছে, তাই এটি সরাসরি বাইরে থেকে অ্যাক্সেস করা যায় না।
  • setName এবং getName মেথডের মাধ্যমে name ভ্যারিয়েবলে ডেটা সেট এবং রিট্রিভ করা যায়।

এনক্যাপসুলেশনের মাধ্যমে কোডের সুরক্ষা বৃদ্ধি পায় এবং প্রোগ্রামের ডেটা পরিবর্তনের নিয়ন্ত্রণ থাকে নির্দিষ্ট মেথডের উপর।


২. ইনহেরিটেন্স (Inheritance)

ইনহেরিটেন্স হলো একটি ক্লাসের বৈশিষ্ট্যগুলো অন্য একটি ক্লাসে ব্যবহার করার প্রক্রিয়া। অর্থাৎ, একটি ক্লাস (চাইল্ড ক্লাস) অন্য একটি ক্লাসের (প্যারেন্ট ক্লাস) বৈশিষ্ট্য ও মেথড উত্তরাধিকার সূত্রে পায়। এটি কোড পুনরায় ব্যবহারযোগ্যতা এবং সহজতর করে।

উদাহরণ:

// প্যারেন্ট ক্লাস
public class Person {
    public String name;
    public Integer age;

    public void displayInfo() {
        System.debug('Name: ' + name);
        System.debug('Age: ' + age);
    }
}

// চাইল্ড ক্লাস
public class Student extends Person {
    public Integer studentId;

    public void displayStudentInfo() {
        displayInfo(); // প্যারেন্ট ক্লাসের মেথড ব্যবহার করা হচ্ছে
        System.debug('Student ID: ' + studentId);
    }
}
  • এখানে Student ক্লাস Person ক্লাস থেকে ইনহেরিট করেছে, যার ফলে Student ক্লাস Person ক্লাসের name, age এবং displayInfo() মেথড ব্যবহার করতে পারছে।

ইনহেরিটেন্সের মাধ্যমে কোড সহজে পুনরায় ব্যবহারযোগ্য হয় এবং কোড রিডন্ডেন্সি কমে।


৩. পলিমরফিজম (Polymorphism)

পলিমরফিজম হলো একটি কাজ বা মেথডকে একাধিক উপায়ে সম্পাদন করার ক্ষমতা। একই মেথড নাম ভিন্ন ভিন্ন ক্লাসে ভিন্নভাবে কাজ করতে পারে। পলিমরফিজমের দুটি প্রধান রূপ হলো মেথড ওভারলোডিং এবং মেথড ওভাররাইডিং

উদাহরণ:

// মেথড ওভারলোডিং
public class Calculator {
    public Integer add(Integer a, Integer b) {
        return a + b;
    }

    public Double add(Double a, Double b) {
        return a + b;
    }
}

// মেথড ওভাররাইডিং
public class Animal {
    public void makeSound() {
        System.debug('Some sound...');
    }
}

public class Dog extends Animal {
    public override void makeSound() {
        System.debug('Bark');
    }
}
  • মেথড ওভারলোডিং: Calculator ক্লাসের add মেথড দুটি ইনপুট টাইপ অনুযায়ী ভিন্ন ভিন্ন উপায়ে কাজ করছে।
  • মেথড ওভাররাইডিং: Dog ক্লাস Animal ক্লাসের makeSound মেথড ওভাররাইড করেছে, যার ফলে Dog ক্লাসের makeSound মেথড চালালে "Bark" প্রিন্ট হবে।

পলিমরফিজমের মাধ্যমে কোডকে আরও ডাইনামিক ও ফ্লেক্সিবল করা যায়।


৪. অ্যাবস্ট্রাকশন (Abstraction)

অ্যাবস্ট্রাকশন হলো কোডের জটিলতা লুকিয়ে রেখে প্রয়োজনীয় বৈশিষ্ট্যগুলো প্রদর্শন করা। এটি এমন একটি প্রক্রিয়া যেখানে কিছু মেথড বা ক্লাসের মাধ্যমে বাইরের বিশ্বের জন্য প্রয়োজনীয় তথ্য প্রদর্শন করা হয়, এবং অবাঞ্ছিত জটিলতাগুলো আড়াল করা হয়। Apex এ Interface এবং Abstract Class ব্যবহার করে অ্যাবস্ট্রাকশন অর্জন করা যায়।

উদাহরণ:

// Abstract Class
public abstract class Vehicle {
    public abstract void startEngine();
}

public class Car extends Vehicle {
    public override void startEngine() {
        System.debug('Car engine started');
    }
}
  • এখানে Vehicle একটি Abstract Class, যেখানে startEngine একটি অ্যাবস্ট্রাক্ট মেথড। Car ক্লাসে এটি ওভাররাইড করে প্রয়োজনীয় কোড যোগ করা হয়েছে।

অ্যাবস্ট্রাকশনের মাধ্যমে কমপ্লেক্সিটির নিয়ন্ত্রণ করা যায় এবং শুধুমাত্র প্রয়োজনীয় অংশগুলো প্রকাশ করা যায়।


সংক্ষেপে OOP Concepts

  1. এনক্যাপসুলেশন (Encapsulation): ডেটা এবং মেথডকে একটি ইউনিট হিসেবে সংরক্ষণ করা এবং সরাসরি অ্যাক্সেস সীমাবদ্ধ করা।
  2. ইনহেরিটেন্স (Inheritance): একটি ক্লাসের বৈশিষ্ট্য ও মেথড অন্য ক্লাসে ব্যবহার করার প্রক্রিয়া।
  3. পলিমরফিজম (Polymorphism): একই মেথড বা কাজ ভিন্ন ভিন্ন উপায়ে সম্পন্ন করার ক্ষমতা।
  4. অ্যাবস্ট্রাকশন (Abstraction): প্রয়োজনীয় বৈশিষ্ট্যগুলো প্রদর্শন করা এবং অবাঞ্ছিত জটিলতাগুলো আড়াল করা।

OOP Concepts প্রোগ্রামিংকে আরও সুসংগঠিত, পুনরায় ব্যবহারযোগ্য, এবং রক্ষণাবেক্ষণযোগ্য করে, যা সফটওয়্যার ডেভেলপমেন্টকে আরও সহজ এবং কার্যকরী করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion